package com.eppear.jpfm.framework.model;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

@Table(name = "t_wx_account")
public class TWxAccount {
    /**
     * ID
     */
    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * 所属企业ID
     */
    @Column(name = "ENT_ID")
    private Integer entId;

    /**
     * 即公众号的微信号,从微信平台上获取
     */
    @Column(name = "ACC_WXID")
    private String accWxid;

    /**
     * 即公众号的原始ID,从微信后台获取
     */
    @Column(name = "ACC_WXNUM")
    private String accWxnum;

    /**
     * 公众账号名称
     */
    @Column(name = "ACC_NAME")
    private String accName;

    /**
     * 公众账号APPID
     */
    @Column(name = "ACC_APPID")
    private String accAppid;

    /**
     * 公众账号APPSECRET
     */
    @Column(name = "ACC_APPSECRET")
    private String accAppsecret;

    /**
     * 公众账号TOKEN
     */
    @Column(name = "ACC_TOKEN")
    private String accToken;

    /**
     * 公众账号描述
     */
    @Column(name = "ACC_DESC")
    private String accDesc;

    /**
     * 1,订阅号,2服务号
     */
    @Column(name = "ACC_TYPE")
    private String accType;

    /**
     * 电子邮箱
     */
    @Column(name = "ACC_EMAIL")
    private String accEmail;

    /**
     * 欢迎语类型
     */
    @Column(name = "WELCOM_TYPE")
    private String welcomType;

    /**
     * 默认为本文消息取文本消息可
     */
    @Column(name = "WELCOM_ID")
    private Integer welcomId;

    /**
     * 1有效,2,无效
     */
    @Column(name = "ACC_STATUS")
    private String accStatus;

    /**
     * 创建人ID
     */
    @Column(name = "CREATOR_ID")
    private Integer creatorId;

    /**
     * 创建时间
     */
    @Column(name = "CREATE_TIME")
    private Date createTime;

    /**
     * 支付属性商户号
     */
    @Column(name = "MCH_ID")
    private String mchId;

    /**
     * 支付属性API密钥
     */
    @Column(name = "API_KEY")
    private String apiKey;

    /**
     * 存储证书的相对路径
     */
    @Column(name = "CERT_PATH")
    private String certPath;
    /**
	 * 访问凭证
	 */
	@Transient
	private String access_token;
	/**
	 * 凭证有效期,单位为秒
	 */
	@Transient
	private int expires_in;
	/**
	 * 添加时间
	 */
	@Transient
	private Timestamp addTime;

	/**
	 * token是否在定时任务里更新过
	 */
	@Transient
	private Boolean isUpdateByTime = false;
	
    public String getAccess_token() {
		return access_token;
	}

	public void setAccess_token(String access_token) {
		this.access_token = access_token;
	}

	public int getExpires_in() {
		return expires_in;
	}

	public void setExpires_in(int expires_in) {
		this.expires_in = expires_in;
	}

	public Timestamp getAddTime() {
		return addTime;
	}

	public void setAddTime(Timestamp addTime) {
		this.addTime = addTime;
	}

	public Boolean getIsUpdateByTime() {
		return isUpdateByTime;
	}

	public void setIsUpdateByTime(Boolean isUpdateByTime) {
		this.isUpdateByTime = isUpdateByTime;
	}
	
    /**
     * 获取ID
     *
     * @return ID - ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置ID
     *
     * @param id ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取所属企业ID
     *
     * @return ENT_ID - 所属企业ID
     */
    public Integer getEntId() {
        return entId;
    }

    /**
     * 设置所属企业ID
     *
     * @param entId 所属企业ID
     */
    public void setEntId(Integer entId) {
        this.entId = entId;
    }

    /**
     * 获取即公众号的微信号,从微信平台上获取
     *
     * @return ACC_WXID - 即公众号的微信号,从微信平台上获取
     */
    public String getAccWxid() {
        return accWxid;
    }

    /**
     * 设置即公众号的微信号,从微信平台上获取
     *
     * @param accWxid 即公众号的微信号,从微信平台上获取
     */
    public void setAccWxid(String accWxid) {
        this.accWxid = accWxid;
    }

    /**
     * 获取即公众号的原始ID,从微信后台获取
     *
     * @return ACC_WXNUM - 即公众号的原始ID,从微信后台获取
     */
    public String getAccWxnum() {
        return accWxnum;
    }

    /**
     * 设置即公众号的原始ID,从微信后台获取
     *
     * @param accWxnum 即公众号的原始ID,从微信后台获取
     */
    public void setAccWxnum(String accWxnum) {
        this.accWxnum = accWxnum;
    }

    /**
     * 获取公众账号名称
     *
     * @return ACC_NAME - 公众账号名称
     */
    public String getAccName() {
        return accName;
    }

    /**
     * 设置公众账号名称
     *
     * @param accName 公众账号名称
     */
    public void setAccName(String accName) {
        this.accName = accName;
    }

    /**
     * 获取公众账号APPID
     *
     * @return ACC_APPID - 公众账号APPID
     */
    public String getAccAppid() {
        return accAppid;
    }

    /**
     * 设置公众账号APPID
     *
     * @param accAppid 公众账号APPID
     */
    public void setAccAppid(String accAppid) {
        this.accAppid = accAppid;
    }

    /**
     * 获取公众账号APPSECRET
     *
     * @return ACC_APPSECRET - 公众账号APPSECRET
     */
    public String getAccAppsecret() {
        return accAppsecret;
    }

    /**
     * 设置公众账号APPSECRET
     *
     * @param accAppsecret 公众账号APPSECRET
     */
    public void setAccAppsecret(String accAppsecret) {
        this.accAppsecret = accAppsecret;
    }

    /**
     * 获取公众账号TOKEN
     *
     * @return ACC_TOKEN - 公众账号TOKEN
     */
    public String getAccToken() {
        return accToken;
    }

    /**
     * 设置公众账号TOKEN
     *
     * @param accToken 公众账号TOKEN
     */
    public void setAccToken(String accToken) {
        this.accToken = accToken;
    }

    /**
     * 获取公众账号描述
     *
     * @return ACC_DESC - 公众账号描述
     */
    public String getAccDesc() {
        return accDesc;
    }

    /**
     * 设置公众账号描述
     *
     * @param accDesc 公众账号描述
     */
    public void setAccDesc(String accDesc) {
        this.accDesc = accDesc;
    }

    /**
     * 获取1,订阅号,2服务号
     *
     * @return ACC_TYPE - 1,订阅号,2服务号
     */
    public String getAccType() {
        return accType;
    }

    /**
     * 设置1,订阅号,2服务号
     *
     * @param accType 1,订阅号,2服务号
     */
    public void setAccType(String accType) {
        this.accType = accType;
    }

    /**
     * 获取电子邮箱
     *
     * @return ACC_EMAIL - 电子邮箱
     */
    public String getAccEmail() {
        return accEmail;
    }

    /**
     * 设置电子邮箱
     *
     * @param accEmail 电子邮箱
     */
    public void setAccEmail(String accEmail) {
        this.accEmail = accEmail;
    }

    /**
     * 获取欢迎语类型
     *
     * @return WELCOM_TYPE - 欢迎语类型
     */
    public String getWelcomType() {
        return welcomType;
    }

    /**
     * 设置欢迎语类型
     *
     * @param welcomType 欢迎语类型
     */
    public void setWelcomType(String welcomType) {
        this.welcomType = welcomType;
    }

    /**
     * 获取默认为本文消息取文本消息可
     *
     * @return WELCOM_ID - 默认为本文消息取文本消息可
     */
    public Integer getWelcomId() {
        return welcomId;
    }

    /**
     * 设置默认为本文消息取文本消息可
     *
     * @param welcomId 默认为本文消息取文本消息可
     */
    public void setWelcomId(Integer welcomId) {
        this.welcomId = welcomId;
    }

    /**
     * 获取1有效,2,无效
     *
     * @return ACC_STATUS - 1有效,2,无效
     */
    public String getAccStatus() {
        return accStatus;
    }

    /**
     * 设置1有效,2,无效
     *
     * @param accStatus 1有效,2,无效
     */
    public void setAccStatus(String accStatus) {
        this.accStatus = accStatus;
    }

    /**
     * 获取创建人ID
     *
     * @return CREATOR_ID - 创建人ID
     */
    public Integer getCreatorId() {
        return creatorId;
    }

    /**
     * 设置创建人ID
     *
     * @param creatorId 创建人ID
     */
    public void setCreatorId(Integer creatorId) {
        this.creatorId = creatorId;
    }

    /**
     * 获取创建时间
     *
     * @return CREATE_TIME - 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:ss:mm")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取支付属性商户号
     *
     * @return MCH_ID - 支付属性商户号
     */
    public String getMchId() {
        return mchId;
    }

    /**
     * 设置支付属性商户号
     *
     * @param mchId 支付属性商户号
     */
    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    /**
     * 获取支付属性API密钥
     *
     * @return API_KEY - 支付属性API密钥
     */
    public String getApiKey() {
        return apiKey;
    }

    /**
     * 设置支付属性API密钥
     *
     * @param apiKey 支付属性API密钥
     */
    public void setApiKey(String apiKey) {
        this.apiKey = apiKey;
    }

    /**
     * 获取存储证书的相对路径
     *
     * @return CERT_PATH - 存储证书的相对路径
     */
    public String getCertPath() {
        return certPath;
    }

    /**
     * 设置存储证书的相对路径
     *
     * @param certPath 存储证书的相对路径
     */
    public void setCertPath(String certPath) {
        this.certPath = certPath;
    }
}